/**
 * Created by Eoly on 2017/2/16.
 * Call http://palerock.cn
 */
var activeInitPage = angular.module('activePage', ['ngRoute']);


/**
 * 发起活动
 */
activeInitPage.controller('activeInit', function ($scope, $http) {

    $scope.activityTitle = null;
    $scope.activityDetail = null;
    $scope.activityGroup = null;
    $scope.groupList = [];
    $scope.activeimg = {};
    $scope.imgs = [];
    $scope.grouptile = null;

    // 初始化界面和功能
    $scope.suiMobileInit = function (isNotChangeContent) {
        app.suiInit(isNotChangeContent);

        app.adaptPhone();
    };

    $scope.leaveOut = function () {
        $.modal({
            title: '你即将离开发布活动页面',
            text: '离开发布页面后，你所填写的所有信息将不会保存',
            buttons: [
                {
                    text: '确认离开',
                    onClick: function () {
                        $scope.cleanStorage();
                        app.backLastPosition();
                    }
                },
                {
                    text: '留在这里',
                    onClick: function () {

                    }
                }
            ]
        });
    };

    /**
     * 我的团
     * **/
    $scope.showUseGroups = function () {

        //获取登录信息
        var token = app.getUserToken();

        if (!token) {
            return;
        }

        var url = '/user/group/find-init-groups';
        $http({
            method: 'get',
            url: net + url,
            headers: {'Authorization': 'Bearer ' + token}

        }).then(
            //响应成功
            function (res) {
                if (!res.data.error) {

                    console.log(res.data);


                    //声明一个变量暂时保存获取的团信息数组
                    var groupList = res.data.dataList;

                    //遍历团信息组,将图片地址这个属性转化为js可以识别的数组
                    for (var i = 0; i < groupList.length; i++) {
                        $scope.groupList.push(groupList[i]);
                    }

                    console.log($scope.groupList);
                    //刷新动作


                    //容器发生改变,如果是js滚动，需要刷新滚动
                    $.refreshScroller();


                } else {

                    $.alert("错误代码:" + res.data.error + "," + res.data.mes);
                }

            },

            function (res) {
                //刷新动作
                $.pullToRefreshDone('.pull-to-refresh-content');
                $.alert('请检查网络后重试');
            }
        );
    };

    //提交活动信息
    //$scope.handActivityInfo = function () {
    //
    //    //获取登录信息
    //    var token = app.getUserToken();
    //
    //    if (!token) {
    //        return;
    //    }
    //
    //    if (token) {
    //        //url:'http://palerock.cn/h5_back/user/activity/add'
    //        //data:
    //        //{                           // 发送json参数
    //        //    'activityTitle':''    	  // 活动标题
    //        //    'activityDetail':''       // 活动内容
    //        //    'activityImages':''       // 存放图片的地址数组
    //        //    'activityGroupId':''       // 绑定的团id
    //        //}
    //
    //        $http({
    //            method: 'post',
    //            url: net + '/user/activity/add',
    //            headers: {'Authorization': 'Bearer ' + token},
    //            data: {}
    //        }).then(function (res) {
    //            console.log(res);
    //            if (!res.data.error) {
    //                $.alert(res.data.mes + '，发布成功', function () {
    //                    $scope.cleanStorage();
    //                    window.location.href = 'my-group.html#my-init-group';
    //                });
    //            } else {
    //                $.alert(res.data.mes)
    //            }
    //        }, function () {
    //            $.alert('网络或设置错误');
    //        })
    //    }
    //};


    //提交图片显示

    $scope.img_upload = function (files) {

        //获取登录信息
        var token = app.getUserToken();

        if (!token) {
            return;
        }

        if (!files || !files[0]) {
            return;
        }

        //规定上传到服务器图片的大小
        var needHeight = 300;
        var needWidth = 500;

        //规定略缩图大小
        var smallWidth = needWidth * 0.33;

        //FileReader用来读取本地文件
        var reader = new FileReader();

        //实例化图片用于被加载在画布上
        var img = new Image();

        //声明一个画布对象，当图片上传成功后添加到数组中便于显示
        var img_obj = {};

        //获取当前时间戳作为画布唯一id
        img_obj.id = new Date().getTime();

        //通过将这个画布对象添加到画布组实现自动显示已上传的图片
        var index = $scope.imgs.push(img_obj) - 1;

        //自动刷新双向绑定，预防双向绑定失效
        $scope.$digest();

        //获取预览画布
        var canvas = document.createElement('canvas');
        canvas.width = needWidth;
        canvas.height = needHeight;


        //控制略缩图大小
        canvas.style.width = smallWidth + 'px';

        var ctx = canvas.getContext("2d");

        //当图片加载完毕执行动作
        reader.onload = function () {

            // 通过 reader.result 来访问生成的 DataURL
            img.src = reader.result;

            //获取图片的高宽
            var width = img.width;
            var height = img.height;

            //获取需要使用的矩形图片区域
            var real_width = width * needHeight / needWidth > height ? height * needWidth / needHeight : width;
            var real_height = width > height * needWidth / needHeight ? height : width * needHeight / needWidth;

            //console.log('need:'+real_width+' '+real_height);
            //console.log('real:'+width+' '+height);

            //定位使图片居中
            var img_x = (width - real_width) / 2;
            var img_y = (height - real_height) / 2;

            //清除原来画布内容
            ctx.clearRect(0, 0, needWidth, needHeight);

            //在画布上渲染头像预览
            ctx.drawImage(img, img_x, img_y, real_width, real_height, 0, 0, needWidth, needHeight);

            //将画布渲染的图像转换为base64字符串储存在data中
            var data = canvas.toDataURL();

            //发送POST请求
            $http({

                method: 'post',
                url: net + "/user/image-upload",
                headers: {'Authorization': 'Bearer ' + token},
                data: data

            }).then(function (res) {

                if (!res.data.error) {

                    //将获得的图片名暂时保存
                    $scope.imgs[index].imgName = res.data.data;

                    //将获取图片名转换为路径用以显示
                    $scope.imgs[index].imgAddress = net + '/resources/img/' + $scope.imgs[index].imgName;

                } else {

                    $scope.img_del(index);
                    $.alert('错误代码：' + res.data.error + "," + res.data.mes);
                }


            }, function () {
                $scope.img_del(index);
                $.alert('网络或设置错误');
            })
        };
        console.log($scope.imgs);
        //加载选中的图片
        reader.readAsDataURL(files[0]);
    };


    $scope.img_del = function (index) {
        //删除制定下标的封面图片
        $scope.imgs.splice(index, 1);
    };

    /**
     * 上传信息
     * */
    $scope.upload = function () {
        console.log($scope.activityGroup);
        var token = app.getUserToken();

        if (!token) {
            return;
        }

        $scope.img = [];
        for (var i = 0; i < $scope.imgs.length; i++) {

            $scope.img[i] = $scope.imgs[i].imgName;
        }
        $scope.activeimg = JSON.stringify($scope.img);
        console.log($scope.activeimg);
        $http({
            method: 'post',
            url: net + "/user/activity/add",
            headers: {'Authorization': 'Bearer ' + token},
            data: {
                'activityTitle': $scope.activityTitle,
                'activityDetail': $scope.activityDetail,
                'activityGroupId': $scope.activityGroup.groupId,
                'activityImages': $scope.activeimg
            }

        }).then(function (res) {
            if (!res.data.error) {
                console.log(res.data.msg);
                app.turnHref('index.html','#index','index.html#mine');
            } else {
                $.alert('错误代码：' + res.data.error + "," + res.data.mes);
            }
        }, function (res) {
            if (res.data) {
                $.alert('错误代码：' + res.data.error + "," + res.data.mes);
            } else {
                $.alert('网络或设置错误');
            }

        })

    };


});

/**
 * 路由
 */
